#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "procesodialog.h"
#include <QDebug>



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    id=1;
connect(ui->comboBox,SIGNAL(activated(int)),this,SLOT(borraProceso(int)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    ProcesoDialog *p=new ProcesoDialog();
    p->setWindowTitle(QString("Proceso %1").arg(id));

   // createRow(id,"1");

   // p.id++;

    p->exec();
  p->show();
  int result=p->satisfactorio();
  this->tam2=p->getTamano();
  if(result==1){

 verify();

  p->setSatisf(0);

  }
 // connect(p->Aceptar,SIGNAL(clicked()),this,SLOT(actualiza()));

}


void MainWindow::createRow(int i,QString actualLine){
    /**************************************/
    QTableWidgetItem *newItem0 = new QTableWidgetItem(QString(actualLine.split("\t").at(10)));
    newItem0->setFlags(Qt::ItemIsSelectable);
    newItem0->setTextAlignment(Qt::AlignVCenter);
    //ui->memory_table->setCellWidget(i,0,Buttons(0,actualLine));
    ui->memory_table->setItem(i,0,newItem0);
    ui->memory_table->item(i,0)->setTextColor(textColor(actualLine));

}


QColor MainWindow::textColor(QString actualLine){
    if (actualLine.split("\t").at(10)=="1"){return QColor("Cyan");}
    if (actualLine.split("\t").at(7)=="1"){return QColor("Red");}
    if (actualLine.split("\t").at(7)=="2"){return QColor("Pink");}
    if (actualLine.split("\t").at(7)=="3"){return QColor("Yellow");}
    if (actualLine.split("\t").at(7)=="4"){return QColor("Green");}
    return QColor("White");
}


void MainWindow::editProceso(int id)
{
    //for(int i=1;i< this->id;i++){
        ui->comboBox->insertItem(id,QString("Borrar proceso %1").arg(id));


}


void MainWindow::borraProceso(int k){

    this->listaProcesos.removeAt(k);

    //this->listaProcesos.at(k)=NULL;
    ui->comboBox->removeItem(k);
this->id=this->listaProcesos.size();


}



void MainWindow::verify()
{
int i;
for(i=0;i<= this->listaProcesos.size();i++)
{
    if(this->listaProcesos[i].getTamano()==0){
    editProceso(i);
    actualiza();
qDebug()<<"entra a if";
return;
    }
    else {
        editProceso(id);
        actualiza();
        qDebug()<<"entra a else";
        return;

    }
}


}


void MainWindow::actualiza(){

    Proceso p;
    p.setId(this->id);
    p.setTamano(this->tam2);
    qDebug()<<"this->tam2="<<this->tam2;
this->listaProcesos.append(p);
this->id= this->listaProcesos.size()+1;
 qDebug()<<"this->id="<<this->id;

}
